-
Notifications
You must be signed in to change notification settings - Fork 64
Quota check preceding resource check #614
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Quota check preceding resource check #614
Conversation
… create a single resource name group
…orrowing at the root
…dispatch AppWrappers that would have enough quota if borrowing AppWrappers are discounted from the resources (due to those being preempted).
I recommend looking at the changes in |
pkg/controller/quota/quotaforestmanager/qm_lib_backend_with_quotasubt_mgr.go
Show resolved
Hide resolved
pkg/controller/quota/quotaforestmanager/qm_lib_backend_with_quotasubt_mgr.go
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for the PR, please address the review
pkg/controller/quota/quotaforestmanager/qm_lib_backend_with_quotasubt_mgr.go
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We reviewed offline. the integration looks good but has a couple of TODOs that should be revisited.
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: asm582 The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/lgtm |
Issue link
#467
What changes have been made
MCAD with quota management allows AppWrappers to borrow quota from other nodes to maximize cluster utilization. In such cases, the borrowing AppWrappers can be preempted by new AppWrappers that request quota within their allocation (because the borrowing AppWrappers should not have full control of quota that is not theirs). This means that when counting the resources available in the cluster to consider if an AppWrapper can be dispatched, the utilized resources of AppWrappers that could be preempted due to borrowing should be considered available for the dispatch check. This PR swaps the resource check and the quota check so that quota is checked first and it updates the resources available in case some AppWrappers can be preempted. If the quota passes but the resources are not enough (even after preemption), the state of the quota tree is recovered and the AppWrapper is put back in the queue for later retry.
Verification steps
Manual testing was performed with 2 AppWrappers: The first one fills up the cluster even though its quota is just a portion of the cluster. The second one requests quota withing its allocation, and despite the fact that the cluster is full, it is dispatched and the first AppWrapper is preempted.
Checks